0 REM << RR13-9 >> 1 REM =-=SPRITE CONTROLLER=-= 2 REM 5 REM SPRITE DATA MUST ALREADY 6 REM BE IN MEMORY. 9 REM 10 REM <> 11 REM <> FNSB(N) AND FNRB(N) 12 REM <> ARE USED TO SET/RESET 13 REM <> BIT N OF LOCATION M 14 REM <> WHEN USED WITH A POKE 15 REM <> AS FOLLOWS: 16 REM <> POKE M, FNSB(N) 17 REM <> OR 18 REM <> POKE M, FNRB(N) 19 REM <> 20 DEF FNSB(N)=PEEK(M) OR 2^N 30 DEF FNRB(N)=PEEK(M) AND (255-2^N) 35 V=53248 :REM VIC CHIP ADDRESS 40 INPUT"WHICH SPRITE # (0..7)";SN 45 IF SN<0 OR SN>7 THEN 40 50 INPUT"WHICH MEMORY BLOCK (192..199)";BK 55 IF BK<192 OR BK>199 THEN 50 60 GOSUB 500 :REM * SET POINTER 70 INPUT"WHAT X COORDINATE (0..511)";X 75 IF X<0 OR X>511 THEN 70 80 GOSUB 600 :REM * SET X COORD. 90 INPUT"WHAT Y COORDINATE (0..255)";Y 95 IF Y<0 OR Y>255 THEN 90 100 GOSUB 700 :REM * SET Y COORD. 110 INPUT"WHAT COLOR (0..15)";C 115 IF C<0 OR C>15 THEN 110 120 GOSUB 800 :REM * SET COLOR 130 PRINT"PRESS A KEY TO TURN SPRITE ON" 140 GET A$:IF A$="" THEN 140 150 GOSUB 900 :REM * TURN IT ON 160 PRINT"PRESS A KEY TO TURN SPRITE OFF" 170 GET A$:IF A$="" THEN 170 180 GOSUB 1000 :REM * TURN IT OFF 190 PRINT"PRESS ANY KEY" 200 GET A$:IF A$="" THEN 200 210 GOTO 2000 :REM * MOVE SPRITE 495 REM=-=-=-=-=-=-=-=-=-=-=-= 496 REM= SET SPRITE POINTER = 497 REM=-=-=-=-=-=-=-=-=-=-=-= 500 POKE 2040+SN,BK 510 RETURN 595 REM=-=-=-=-=-=-=-=-=-=-=-= 596 REM= SET X COORDINATE = 597 REM=-=-=-=-=-=-=-=-=-=-=-= 600 M=V+16 : X0=X 610 IF X<256 THEN POKE M,FNRB(SN):GOTO 630 620 X0=X-256 : POKE M,FNSB(SN) 630 POKE V+SN*2,X0 640 RETURN 695 REM=-=-=-=-=-=-=-=-=-=-=-= 696 REM= SET Y COORDINATE = 697 REM=-=-=-=-=-=-=-=-=-=-=-= 700 POKE V+SN*2+1,Y 710 RETURN 795 REM=-=-=-=-=-=-=-=-=-=-=-= 796 REM= SET COLOR = 797 REM=-=-=-=-=-=-=-=-=-=-=-= 800 POKE V+39+SN,C 810 RETURN 895 REM=-=-=-=-=-=-=-=-=-=-=-= 896 REM= TURN SPRITE ON = 897 REM=-=-=-=-=-=-=-=-=-=-=-= 900 M=V+21 910 POKE M,FNSB(SN) 920 RETURN 995 REM=-=-=-=-=-=-=-=-=-=-=-= 996 REM= TURN SPRITE OFF = 997 REM=-=-=-=-=-=-=-=-=-=-=-= 1000 M=V+21 1010 POKE M,FNRB(SN) 1020 RETURN 1994 REM=-=-=-=-=-=-=-=-=-=-=-= 1995 REM= MOVE SPRITE = 1996 REM=-=-=-=-=-=-=-=-=-=-=-= 2000 X=24:Y=150:DX=4:DY=2 2010 GOSUB 900 2020 X=X+DX : Y=Y+DY 2030 IF X>320 THEN DX=-DX 2040 IF X<24 THEN DX=-DX 2050 IF Y>229 THEN DY=-DY 2060 IF Y<50 THEN DY=-DY 2070 GOSUB 600 : GOSUB 700 2080 GOTO 2020 2090 NEXT